unit CaixaEntSaiDM;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ZDataset, ZSqlUpdate, ZSequence, MainDM, db, QueryConditions;

type

  { TCaixaEntSaiData }

  TCaixaEntSaiData = class(TMainDataModule)
    AuxiliarZQuery: TZQuery;
    CaixaDatasource: TDatasource;
    CaixaEntSaiZQuery: TZQuery;
    CaixaEntSaiZQuerydesc_ent_saida_caixa: TStringField;
    CaixaEntSaiZQueryid_caixa: TLargeintField;
    CaixaEntSaiZQueryid_entrada_saida_caixa: TLargeintField;
    CaixaEntSaiZQueryid_usuario: TLargeintField;
    CaixaEntSaiZQuerytipo: TStringField;
    CaixaEntSaiZQueryvalor: TFloatField;
    CaixaEntSaiZUpdate: TZUpdateSQL;
    CaixaEntSaiZSequence: TZSequence;
    CaixaEntSaiDatasource: TDatasource;
    CaixaZQuery: TZQuery;
    CaixaZQuerydata_fim: TDateTimeField;
    CaixaZQuerydata_inicio: TDateTimeField;
    CaixaZQueryid_caixa: TLargeintField;
    CaixaZQueryid_usuario: TLargeintField;
    CaixaZQueryvalor_acrescentado: TFloatField;
    CaixaZQueryvalor_final: TFloatField;
    CaixaZQueryvalor_inicial: TFloatField;
    CaixaZQueryvalor_retirado: TFloatField;
    CaixaZSequence: TZSequence;
    CaixaZUpdateSQL: TZUpdateSQL;
    procedure DataModuleCreate(Sender: TObject);
    /// Abre o DataSet
    procedure OpenDataSet(); override;
    /// Fecha o DataSet
    procedure CloseDataSet(); override;
    /// Realiza busca
    /// @param(Condicoes são as condições para a busca)
    /// @param(Tabela é a tabela no banco de dados)
    procedure Search(Condicoes: TQueryConditions; Tabela: string); override;
    function BuscaIDCaixa(): string;

  end;

var
  CaixaEntSaiData: TCaixaEntSaiData;

implementation

uses ConnectionDM;

{ TCaixaEntSaiData }

procedure TCaixaEntSaiData.DataModuleCreate(Sender: TObject);
begin
  MainDataSet := CaixaEntSaiZQuery;
end;

procedure TCaixaEntSaiData.OpenDataSet();
begin
  ConnectionData.EmptyQuery(CaixaEntSaiZQuery, 'entrada_saida_caixa');
end;

procedure TCaixaEntSaiData.CloseDataSet;
begin
  CaixaEntSaiZQuery.Close();
end;

procedure TCaixaEntSaiData.Search(Condicoes: TQueryConditions; Tabela: string);
begin
  ConnectionData.OpenQueryConditions(CaixaEntSaiZQuery, Tabela, Condicoes);
end;

function TCaixaEntSaiData.BuscaIDCaixa(): string;
var
  IDCaixa: string;
begin
  with CaixaZQuery do begin
    Close();
    SQL.Clear();
    SQL.Add('Select id_caixa from caixa where data_fim =:date');
    ParamByName('date').AsString := '2000-01-01';
    Open();
    Edit();
    if RecordCount > 0 then begin
      IDCaixa := FieldByName('id_caixa').AsString;
      Result := IDCaixa;
    end else begin
      Result := '';
    end;
  end;
end;

initialization
  {$I caixaentsaidm.lrs}

end.
